5. 특이 케이스 추가하기
특수한 경우의 공통 동작을 한곳에 모으자.
리팩터링 과정에서 코드를 일괄적으로 바꿔야 한다면 해당 함수에 에러처리 구문을 넣어, 실수가 있는지 확인하자.
특이 케이스의 경우라면 특이 케이스 객체를 반환하여 기본값 처리를 하자.
데이터 구조를 변환하는 함수
- enrich: 부가 정보 추가
- transform :형태를 바꾸는 경우
특수한 경우의 공통 동작을 한곳에 모으자.
const site = acquireSiteData()
const aCustomer = site.customer
if (aCustomer === '미확인 고객')
// 1. 반복되는 검사 케이스 확인
function isUnknown(aCustomer) {
return aCustomer === '미확인 고객'
} // 2. 함수로 추출
// 3. 객체 자체에 unKnown 관련 정보와 특이케이스일 때의 정보를 삽입
function enrichSite(site) {
const result = _.cloneDepp(site)
if (isUnknown(result.customer)) {
result.customer = unknownCustomer
}
}
// 4. 클라이언트(게스트)에서는 비교 구문 없이 참조만으로도 특이케이스일 때의 정보가 나옴.